package transactionimplementation

import(
	AbstractTransactions "SoftwareEngineering/AbstractTransactions"
	Model "SoftwareEngineering/Model"
	ModelImplementation "SoftwareEngineering/ModelImplementation"
)

type ChangeCommissionedTransaction struct {
	AbstractTransactions.ChangeClassificationTransaction
	itsSalary float64
	itsCommissionRate float64
}

func (ch ChangeCommissionedTransaction) NewChangeCommissionedTransaction(empid int,salary float64,commissionRate float64){
	ch.itsSalary = salary
	ch.itsCommissionRate = commissionRate
	AbstractTransactions.ChangeAffiliationTransaction{}.NewChangeEmployeeTransaction(empid)
}

func (c *ChangeCommissionedTransaction) GetClassification() Model.PaymentClassification{
	return ModelImplementation.CommissionedClassification(c.itsSalary, c.itsCommissionRate)
}

func (c *ChangeCommissionedTransaction) GetSchedule() Model.PaymentSchedule{
	return ModelImplementation.MonthlySchedule{}
}